#include <iostream>
#include <string>

int main()
{
    // R"(...)" —— 所见即所得，写正则、路径、JSON 再也不用数反斜杠

    // 1. 传统字符串：要写双反斜杠
    const char *trad = "C:\\ProgramFiles\\App\\config.json";
    std::cout << trad << '\n';

    // 2. 原始字符串：一个反斜杠都不用转义
    const char *raw = R"(C:\ProgramFiles\App\config.json)";
    std::cout << raw << '\n';

    // 3. 正则表达式：传统里四层反斜杠地狱
    const char *pattern1 = "\\\\d+";  // 目标：匹配字面量 \d+
    const char *pattern2 = R"(\\d+)"; // 一眼看出要匹配 \d+
    std::cout << pattern1 << "  vs  " << pattern2 << '\n';

    // 4. 带双引号的 JSON 片段
    const char *json = R"({"name":"Tom","age":18})";
    std::cout << json << '\n';

    // 5. 内容里出现 )" 怎么办？——自定义 delimiter
    const char *code = R"cpp(int main() { return 0; })cpp";
    std::cout << code << '\n';
    return 0;
}